package com.wtwd.device.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wtwd.device.model.entity.DeviceStep;
import com.wtwd.device.model.entity.DeviceStepDto;
import com.wtwd.device.model.entity.DeviceStepInfo;
import com.wtwd.device.model.vo.DeviceStepVo;

import java.util.List;

/**
 * <p>
 * 每日步数 服务类
 * </p>
 *
 * @author mjy
 * @since 2024-05-25
 */
public interface IDeviceStepService extends IService<DeviceStep> {

    /**
     * 以设备id和当天时间为 唯一索引插入或者更新
     *
     * @param step
     * @return
     */
    boolean insertOrUpdate(DeviceStep step);

    /**
     * 根据设备id 以及当前的开始时间获取一天的总步数信息
     *
     * @param deviceId
     * @param date
     * @return
     */
    DeviceStep getDayStepByTime(Long deviceId, String date);

    /**
     * 根据开始时间结束时间获取总步数信息
     *
     * @param deviceId
     * @param startTime
     * @param endTime
     * @return
     */
    List<DeviceStep> getDaysStepInfo(Long deviceId, String startTime, String endTime);

    /**
     * 获取开始时间一天的总步数信息
     * 及一天步数的详细信息
     *
     * @param deviceId
     * @param time
     * @return
     */
    DeviceStepVo getDayStepDataByTime(Long deviceId, Long id, String time);

    /**
     * 服务器同步app统计数据 及设备步数
     *
     * @return
     */
    List<DeviceStep> synchronizationStep(List<DeviceStepDto> deviceStepDtos);

    /**
     * 批量插入或者更新
     *
     * @param deviceSteps
     * @return
     */
    boolean bathInsertOrUpdate(List<DeviceStep> deviceSteps);
}
